Skip to content

fix(loop): publish trusted control plane on macOS#109

Merged
codeacme17 merged 1 commit into
devfrom
codex/bootstrap-control-plane-installer
Jul 24, 2026
Merged

fix(loop): publish trusted control plane on macOS#109
codeacme17 merged 1 commit into
devfrom
codex/bootstrap-control-plane-installer

Conversation

@codeacme17

Copy link
Copy Markdown
Owner

Summary

  • keep the temporary bundle root writable until its atomic rename completes
  • make the published bundle root read-only immediately after publication
  • clean up the correct bundle path if installation fails before or after rename
  • add an integration regression test using a clean fixture repository

Verification

  • node --test loops/issue-dev-loop/tests/install-trusted-control-plane.test.mjs
  • pnpm loop:issue-dev:test (87 tests passed)
  • pnpm loop:issue-dev:validate
  • pnpm verify

Risk

Low and isolated to trusted control-plane installation. Installed files and child directories are read-only before publication; the bundle root is set to mode 0555 immediately after the atomic rename.

Bootstrap note

This Draft PR repairs the installer required to activate issue-dev-loop. After owner merge into dev, install a fresh trusted control plane from the clean owner-merged dev checkout before resuming the loop.

Owner controls Ready, approval, and merge.

@codeacme17
codeacme17 marked this pull request as ready for review July 24, 2026 11:53
@codeacme17
codeacme17 merged commit 376f838 into dev Jul 24, 2026
4 checks passed

@Traviinam Traviinam left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fresh-context COMMENT-only review

RVW-1-1-1 — P1 · High confidence — make the test independent of a host-installed gh

File: loops/issue-dev-loop/tests/install-trusted-control-plane.test.mjs:95

The new test launches the real installer with the inherited PATH. The installer requires gh, but the authoritative verifier image installs only ca-certificates and git (loops/issue-dev-loop/scripts/verifier.Dockerfile:1-5). The evidence workflow runs pnpm verify in that image (.github/workflows/issue-dev-loop-evidence.yml:148-151), and package.json:78-79 now includes this test. Consequently, future issue-loop evidence verification will fail before it can be accepted.

Reproduction at the immutable head:

env PATH=/usr/bin:/bin /Users/leyoonafr/.nvm/versions/node/v24.5.0/bin/node --test loops/issue-dev-loop/tests/install-trusted-control-plane.test.mjs

Result: required executable is unavailable during trusted installation: gh

The same test passes with the host PATH containing gh.

Expected resolution: create an executable fixture gh and prepend its directory to the installer subprocess PATH, keeping the test self-contained. Alternatively, provide gh in every canonical verifier environment and verify the containerized pnpm verify path.

Inline comment ID: null (body-only finding).

Spec

PASS. The implementation correctly defers the temporary root mode 0555 until after rename, switches cleanup ownership after successful publication, preserves read-only child and file modes, and retains canonical manifest and source binding. No scope creep found.

Residual test risk: cleanup failure branches and recursive installed modes are not directly exercised.

@Ethandasw

Copy link
Copy Markdown
Collaborator

RVW-1-1-1 classification: accepted.

Ethandasw reproduced and fixed the verifier portability issue in commit 8edc9751070f29d4cf6d27c4e3f616d074308bb3, published as Draft follow-up PR #110: #110

Evidence:

  • Restricted verifier-like PATH test passed: env PATH=/usr/bin:/bin /Users/leyoonafr/.nvm/versions/node/v24.5.0/bin/node --test loops/issue-dev-loop/tests/install-trusted-control-plane.test.mjs
  • Full loop suite passed: 87/87 tests
  • Full pnpm verify passed

The test now supplies its own executable gh fixture, prepends it only for the installer subprocess, and asserts the generated manifest binds that fixture.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants